Fortune Today

A quiet daily ritual — one thoughtful message at a time

Visit Website
May 22, 2026 From Svelte Web App to Native Mobile App with Capacitor

Fortune Today is now live on both Google Play and the Apple App Store 🌿

I originally built it as a small Svelte web app — a quiet daily message experience where you open one thoughtful message each day.

Then I wrapped it with Capacitor and turned it into native mobile apps.

Honestly, I was surprised by how smooth the transition was. Most of the core experience stayed the same, while Capacitor made it much easier to bring the app to Android and iOS without rebuilding everything from scratch.

I also added a few mobile-native touches, like haptic feedback, so the app feels a little more natural in your hand instead of just feeling like a web page inside an app.

It’s a small product, but shipping it across web, Google Play, and the App Store feels meaningful to me.

For indie builders, I think this stack is worth considering:
Svelte for building quickly, Capacitor for reaching mobile users, and a simple product idea that can grow slowly over time.

Thank you for your support — every bit of feedback, encouragement, and download really means a lot.

Download links:

Google Play
https://play.google.com/store/apps/details?id=com.henaxing.fortunetoday

Apple App Store
https://apps.apple.com/us/app/fortune-today-daily-message/id6770091343

Comment

May 13, 2026 Why I’m Using SvelteKit Instead of Next.js for My Small Side Projects

React + Next.js has almost become the default choice for modern web apps.

And I get why.

The ecosystem is huge. The community is massive. There are countless libraries, templates, examples, and production references. If you are building a large-scale product with a team, complex requirements, and long-term hiring concerns, React + Next.js is still a very safe and powerful choice.

But recently, I’ve been building several small side projects, and I found myself reaching for a different stack:

Svelte + SvelteKit.

Not because I think it is better in every situation.

But because for the kind of products I’m building right now, it feels more direct, more intuitive, and honestly more enjoyable.

Most of my recent side projects are small web apps.

They don’t have hundreds of pages.
They don’t need a large engineering team.
They don’t require a huge architecture from day one.

They are closer to small creative products: simple ideas, focused interactions, lightweight experiences, and quick iterations.

For this kind of work, SvelteKit feels like a very good fit.

With React and Next.js, I often feel like I’m assembling a system. I need to think about component structure, hooks, state management patterns, rendering behavior, dependencies, and framework conventions. Of course, this can be powerful. But for small products, it can also feel like a lot of machinery before the product even becomes real.

With Svelte, the mental model feels simpler to me.

A component looks close to HTML, CSS, and JavaScript.
State feels built into the language instead of something I need to organize around a pattern.
Reactivity feels natural.
The amount of boilerplate stays low.

That matters a lot when I’m building with AI-assisted coding, or what people now call “vibe coding.”

When I have an idea, I want to move quickly from concept to working prototype. I want to test the feeling of the product as soon as possible. I want to adjust UI, animation, interaction, and copy without getting slowed down by too much framework ceremony.

SvelteKit works very well for that.

It gives me enough structure to build and deploy a real web app, but it doesn’t make a small project feel bigger than it needs to be.

That balance is important.

For a small side project, speed is not only about writing code faster. It is also about keeping the idea alive. The longer the distance between “I have an idea” and “I shipped something,” the easier it is to lose energy.

SvelteKit helps me keep that distance short.

Another thing I like is how readable the code remains. When I come back to a project after a few days or weeks, I can usually understand what is happening quickly. The UI, state, and behavior are often in the same place in a way that feels easy to scan.

This is especially useful for solo builders.

When you are building alone, you are not just the developer. You are also the designer, product manager, QA, marketer, and support person. Anything that reduces cognitive load helps.

React + Next.js is still great. I’m not trying to say one stack is universally better than the other.

But I do think more indie builders should consider whether they really need the default mainstream stack for every small idea.

For large products, React + Next.js may still be the safer choice.

For small, focused, creative web apps, Svelte + SvelteKit can feel surprisingly productive.

At least for me, it has become one of the best stacks for turning small ideas into shipped products.

The harder part now is not building.

It is distribution.

I’ve shipped several small projects, but traffic does not magically appear just because the product exists. That’s the next thing I’m learning: how to bring people to the things I build.

Here are the recent small products I built with SvelteKit:

🍀 Fortune Today
A small daily fortune app
https://fortunetoday.app/

🕹️ Retro Watch
A retro pixel clock for your browser
https://retrowatch.app/

🫧 Fidgetivity
A tiny browser-based fidget experience
https://fidgetivity.com/

I’m still learning how to get traffic, how to distribute small products, and how to make these projects discoverable.

But at least on the building side, SvelteKit has made the process feel lighter, faster, and more fun.

Comment

May 8, 2026 I added a “My Journey” screen to make my daily fortune app feel more personal

I recently shipped a new update for Fortune Today, my small daily fortune / reflection web app.

This update was not mainly about adding a lot of new features. Instead, I wanted to make the product feel more complete, calmer, and more reliable in actual daily use.

The biggest addition is a new My Journey screen.

Until now, the app was mostly about opening one message for the day. With My Journey, users can now look back at their own local history: total reveals, reveals this year, first reveal date, recent messages, liked messages, and a few small stats around their usage.

I wanted this to make the product feel less like a one-time interaction and more like a quiet daily ritual that slowly accumulates over time.

I also reworked a lot of the presentation.

The intro and reveal animations were adjusted so that the moment of opening a message feels calmer and more intentional. I was not trying to make it flashy. The goal was to improve the pacing, the waiting moment, and the transition between screens so the whole experience feels more natural.

A lot of this update was also about small UX details.

I cleaned up the saved message flow, panels, dialogs, bottom sheets, overlay behavior, back navigation, ESC key support, and close rules across the app. These are small things on the surface, but I think they strongly affect whether a product feels predictable and comfortable, especially when switching between mobile and desktop.

I also improved SEO and locale handling, including more stable language switching and localized routes. On the audio side, I fixed BGM behavior on mobile when the browser loses focus, so the experience is less likely to feel broken when users switch away and come back.

On the engineering side, I started adding tests around core logic such as navigation, local history storage, and locale routing. This gives me a better foundation to keep improving the product without worrying that small changes will break the experience.

Overall, this update was less about “more features” and more about reducing small frictions, improving the rhythm of the product, and making it feel more trustworthy.

For a small app like this, I believe these details matter a lot.

I’m still shaping the direction, but I want Fortune Today to stay simple: one thoughtful message a day, with just enough memory to make the ritual feel personal over time.

You can try it here: fortunetoday.app

Would love to hear your feedback. Thank you for your support!

Comment

April 27, 2026 Launched Fortune Today — a quiet daily ritual on the web

I just launched Fortune Today — a small web app built around a simple idea:

one thoughtful message, once a day.

Most apps compete for more attention with endless feeds, notifications, and noise.
I wanted to build something quieter — a small daily ritual that gives you a brief moment to pause, breathe, and reflect.

Fortune Today offers:
• one daily message reveal
• save favorite messages
• like meaningful ones
• share/export beautiful message cards
• a calm, mobile-first PWA experience

Built with SvelteKit and designed to feel warm, simple, and thoughtful.

You can try it here: fortunetoday.app

Would love to hear your feedback.

6 Comments

  1. 2

    Hey, I absolutely love the quiet and peaceful vibe of Fortune Today! It's such a refreshing escape from all the noisy apps constantly fighting for our attention. Using SvelteKit was a great call for keeping that PWA experience super smooth and lightweight. It really shows that sometimes doing one small thing perfectly is the best feature. How are you planning to reach people who are looking for this kind of daily mindfulness?

    1. 1

      Thank you so much — I really appreciate that.

      “Doing one small thing perfectly” is very close to the idea behind Fortune Today. I wanted it to feel less like another app competing for attention, and more like a small daily pause that respects the user’s time.

      SvelteKit has also been a great fit for keeping the experience fast, lightweight, and PWA-friendly.

      Reaching the right people is something I’m still thinking a lot about. Since Fortune Today is a web app, it’s very easy to access — no install, no account, no friction. But at the same time, it doesn’t naturally get the same kind of discovery surface that an App Store product might have.

      So I’m trying to find a growth path that fits the product’s calm nature: indie builder communities, gentle social sharing, search-friendly pages, and people sharing their daily message when it resonates.

      I’m hoping to reach people who are looking less for “fortune telling” and more for a tiny reflective ritual they can return to each day.

      1. 2

        Choosing a clean PWA over App Store noise is like picking a quiet library over a crowded stadium for your daily ritual. The low-friction entry is a brilliant feature for users who are already tired of heavy onboarding and constant notifications. Focusing on gentle resonance instead of aggressive growth hacks is a much more stable way to scale a mindful product. It is a refreshing refactor of the typical attention-economy business model that dominates our screens today. Do you think a subtle share feature could help the ritual spread without breaking the peaceful vibe of the site?

        1. 1

          Thank you — I love the “quiet library over a crowded stadium” metaphor.

          And yes, I think subtle sharing can help, as long as it feels like part of the ritual rather than a growth loop.

          Fortune Today already has a simple image save feature for the daily message, but your comment makes me think I should make that moment a bit more visible and intentional — something closer to “keep this if it resonated” or “send this to someone who might need it today,” rather than a loud “share this now” button.

          That feels much more aligned with the calm nature of the product.

  2. 2

    The "attention economy" is so loud right now that most apps feel like they are shouting at you, which makes the idea of a single, unskippable moment of reflection feel almost rebellious.

    The real fatigue comes from the endless scrolling habit that leaves you feeling more drained than when you started because there is never a clear "end" to the content. By limiting the interaction to just one message a day, you are transforming a digital habit into a meaningful ritual that respects the user's time instead of trying to hijack it for more "session minutes."

    Have you thought about how the "card export" feature could help the app grow organically when people share their daily message on social media platforms that are usually much more chaotic?

    1. 1

      Hi! Thank you so much for this thoughtful comment.

      You described exactly the feeling I wanted Fortune Today to have — not another app trying to stretch the session, but a small, intentional ending point in the day. I really like your framing of it as a quiet ritual inside a very loud attention economy.

      And yes, I completely agree about the card export idea. There is actually a “save image” feature on the result screen already, so people can save and share their daily message as an image. But your comment makes me realize that it may not be visible enough yet.

      I’ll think more about how to make that action feel more natural and discoverable without making the experience noisy. Maybe the export/share flow itself can become part of the ritual, rather than just a utility button.

      I’d love to hear more of your thoughts on this — especially what kind of sharing experience would feel calm and intentional, instead of turning the app into another growth-hacking product.

About

Most digital products compete for more attention. I wanted to build something quieter — a small daily ritual on the web. **Fortune Today** delivers one thoughtful message a day: a brief pause to slow down and reflect.