Calendar
Published: ....
Last modified: ....
Share this post on BlueskySee discussion on Bluesky
I want to start a semi-live blog post about building a simple calendar web application.
I have tried this kind of thing before, or at least something similar for a few other projects but they have never really actually played out well.
This time I will try to keep it short and to the point.
First lets start with the goal of the project:
- Reminders
I have about 6 things that I have to keep in mind to pay off every month, some of these are loans, others include utilities and rent. However one of the problems I have encountered has been visiting the site to pay off a bill only to find out that I payed it off earlier in the month.
I have no idea why my memory is so bad, but it just is.
- Events
I use a random mixture of pen and paper, todo lists, and some reminders on my phone to keep up on events and other things happening in my life but I haven't settled on a good calendar app that satisfies all my needs.
Starting Off:
So of course instead of doing a fresh install of react and all the other tools I need in another directory, I decided to boot up a codepen and just start with some code.
I have written about this before, but Codepen is a pretty great tool to just poc some ideas.
After I got set up with some simple styles, i jumped into the javascript to render out some days in my calendar.
After about an hour of tinkering around and finding a really odd bug with some of my code which you can read about here: Javascript Weirdness, I finally had a suitable graphical demo of what I was going for.
Next steps:
After my initial mock up on code pen I am finally ready to boot up a new directory with Next.js, React, ReactDOM, and styled-jsx-postcss. This is my new go to install command:
yarn add next@2.0.0 react react-dom styled-jsx-postcss
First before installing all that I need to determine a good name for the project. im thinking Months.
Two Days Later:
Ok so I have the rough draft up and working locally, there are however some changes that I might need to make to get this working the way I want it.
Lets document them down here in this post:
- Performance is terrible even on a mildly spec'd macbook pro (what happens when you render out 365(6) elements)
- I want a scroll indicator somewhere saying what month you are scrolled on
- I want the sidebar to represent the current selected day (reminders + event info there)
Yet another day later:
So Today I split out each day as a separate component, adding some content and styles.
I also added some logic to scroll to the element, highlight it if it is the current day and a few other things.
Still have no idea how to implement the proper rendering of items to be more efficient and improve performance.
Going to stop updates on this project until I get back from my trip. The next week will be spent working on getting a really basic website set up for tracking photos, memories, videos etc from my trip to New Zealand.
Tags:
Related Posts
Web Development
Published: ....
I recently launched a rewrite and redesign of this personal website, I figured I'd talk a bit about the changes and new features that I added along the way!
Published: ....
A quick tip to implementing CSS theming that's compatible with Server Side Rendered applications!
Published: ....
A brief overview on how we launched The Bikeshed Podcast, including a deep dive in our recording and distribution workflows!
Published: ....
A quick tip outlining how to provide specific TypeScript type definitions for a local module!
Published: ....
Some rough thoughts on building a file-system routing based web application
Published: ....
Slicing software: why vertical is better than horizontal.
Published: ....
What if you could author an entire web application in a single file?
Published: ....
A quick way to handle resetting internal state in components when a parent form is submitted!
Published: ....
A brief look at Import Maps and package.json#imports to support isomorphic JavaScript applications!
Published: ....
A collection of tech talks that I regularly re-watch and also recommend to everyone!
Published: ....
Some features and functionality that I'd like within a React Server Component compatible framework.
Published: ....
A (running) collection of Bluesky tips, tools, packages, and other misc things!
Published: ....
A quick look at a small but powerful pattern I've been leveraging as of late!
Published: ....
A proposal for a minimal variant of TypeScript!
Published: ....
Sharing a few core recommendations when working within monorepos to make your life easier!
Published: ....
This is a quick post noting that Next.js should now work with Deno v2!
Published: ....
React components have a fundamental contract that is often unstated in their implementation, and you should know about it!
Published: ....
Replace that old useState and useEffect combo for a new and better option!
Published: ....
A quick look at the applications and tools that I (generally) use day to day for web development!
Published: ....
There are a variety of different markdown "standards" out there, and sometimes they're not all that consistent
Published: ....
Proposing a solution for sharing core "business" logic across services!
Published: ....
There's a common gotcha when creating Web Request and Response instances with Headers!
Published: ....
Feature toggles are often underused by most software development teams, and yet offer so much value during not only feature development but also refactors
Published: ....
A quick introduction to my new side project, hohoro. An incremental JS/TS library build tool!
Published: ....
Two neat tricks for enhancing your site's favicon!
Published: ....
The various risks and pitfalls of open source software run by corporations.
Published: ....
A monorepo template for managing a library and documentation together.
Published: ....
How we solved an almost show-stopping production bug, and how you can avoid it in your own projects.
Published: ....
A(nother) deep dive into one of my recent side projects; tails - a plain and simple cocktail recipe app.
Published: ....
When did semver major changes become so scary?
Published: ....
Leveraging service monitors properly to improve service observability.
Published: ....
A brief recap of how Wayfair changed it's CSS approach not once but twice in the span of 5 years!
Published: ....
A deep dive into one of my recent side projects; microfibre - a minimal text posting application
Published: ....
Pair programming can be good sometimes - but not all the time
Published: ....
A few thoughts on using Suspense with GraphQL to optimize application data loading
Published: ....
A few thoughts on what to do after you launch a new project
Published: ....
A few quick thoughts on burn out and taking a break
Published: ....
A few thoughts on managing complex UI component state within React
Published: ....
A quick overview of the new lifecycle methods introduced in React 16.3
Published: ....
A few thoughts and patterns for using styled-jsx or other CSS-in-JS solutions
Published: ....
A few thoughts on the redesign of my personal site, adopting Next.js and deploying via Now
Published: ....
A few weird things about JavaScript