Rewriting My Website with Deno, Fresh, Drizzle, and Turso
I recently undertook the exciting task of rewriting my website to leverage the latest tools and technologies to make development and content management more efficient and enjoyable. Here's a concise summary of the major changes and tools I used in this overhaul.
Database Operations with Drizzle and Turso
Drizzle
For database operations, I opted for Drizzle, which provides a typesafe and declarative approach to SQL. It integrates seamlessly with TypeScript, ensuring that my schema and queries remain type-safe.
Turso
Turso acts as the database layer. It’s optimized for edge deployment, ensuring fast query performance no matter where the end-user is located. This is particularly beneficial in a global context, minimizing latency and improving user experience.
Uploadthing for Asset Management
For handling asset uploads, particularly for blog post images and downloadable content, I integrated Uploadthing. This tool made it easy to facilitate file uploads without constructing a complex backend. The Uploadthing API streamlined the upload process, saving development time while also providing a robust solution for asset management.
Dynamic Content Management
One of the primary goals was to eliminate the need to modify the source code for content updates. To achieve this, I implemented features that allow for creating and editing:
- Blog Posts
- Downloadable Content
- Project Entries
These functionalities were built into the admin panel of the website, allowing me to manage content dynamically. Using Fresh for frontend components and Drizzle for database interactions, I could build a user-friendly interface ensuring that adding or editing content does not require direct code changes.
Conclusion
Rewriting my website using modern tools like Deno, Fresh 2.0 Alpha, Drizzle, and Turso has been a refreshing experience. These changes not only improved the performance and scalability of the site but also enhanced the developer experience. With the inclusion of Uploadthing for asset management and dynamic content management features, I am now able to focus more on creating content rather than grappling with technological overheads.
Showcase