HN user

kennyfrc

144 karma

I operate a performance marketing agency & a marketing SaaS. Both bootstrapped.

monolithgrowth.com & jetdraftai.com

Posts14
Comments26
View on HN

Yes, the lib's great!

Unfortunately I haven't thought much yet about interoperability with other web components libraries like lit. I imagined folks would choose just one web component library over the other.

That said, you can initialize reactive properties(1), but property bindings won't work if there's a parent LitElement (as my reactive properties need to be called with either a .value method or an .update method for getting and setting respectively).

As of the moment, what's possible is interop with other cami elements using a store, and in a future version, i'm considering a richer event system for external javascript code to listen to.

---

(1) Initializing is possible with observerableAttr: https://github.com/kennyfrc/cami.js/blob/master/examples/008...

Thanks! Cami is technically a combination of both. I like the intuitiveness of observables so that’s used:

```

// define observable

this.count = this.observable(0);

// getting

this.count.value;

// setting

this.count.update(value => value + 1);

```

But it also has a redux-like pattern where you can dispatch actions and register reducers with far less ceremony:

```

// define store

const todoStore = createStore({ todos: [], });

// register reducer / producer

todoStore.register('add', (store, payload) => { store.todos.push(payload); });

// subscribe component to store

this.todos = this.subscribe(todoStore, 'todos');

// dispatch

this.dispatch("add", newTodo);

```

It looks like it’s mutating, but both the reducers and update() uses immer* under the hood, so we still respect immutability under the hood.

Cami supports redux devtools so you can use that for time-travel debugging too.

—-

* https://github.com/immerjs/immer

You can consider Cami as the light dom sibling of Lit (which uses shadow dom).

Cami loses out on slots & style encapsulation, but you can style Cami components with normal / global css like it’s part of the normal dom. And since there’s no shadow dom overhead, it’s more performant and there is no FOUC if you load CSS in <head>.

Yes, Cami uses fine-grained reactivity, so it’s a cousin of similar solutions like Solid signals, Svelte runes, Knockout / and MobX observables.

It doesn’t support SSR as it aims to be backend-agnostic (i.e. you can use python/ruby/haskell, and you can copy+paste the Cami module with no build step and you can start using it).

If you want SSR for the SEO benefits, I think it’s better to render the text-heavy parts as normal HTML for indexing with Google, and then mount the interactive parts with Cami / web components (i.e. “islands architecture”: https://www.patterns.dev/posts/islands-architecture)

Yes, I have used this for feature roadmaps.

I don’t do what you mentioned (ie. look for paid apps with lots of ratings & a low score), I look for any app with at least one 1 star or 2 star reviews and I also look for any problem (doesn’t have to be related to an app) in reddit or any forum.

To be fair, it’s quite a numbers game to dig for useful problems or insights.

A related video about the process is Amy Hoy’s Sales Safari: https://youtu.be/67JVkG4dpj4

If you want to create a B2B product, I would look for 1-star reviews in G2 and Capterra and see if you can solve these problems yourself.

You could also check what people are complaining about / asking help for in relevant subreddits and see if you can build a product around that.

Marketer here. If I were to define the fundamental aspects of marketing, it would be as follows (I also have a note about feedback loops after):

1. Customer empathy: you need to know their pains, dreams, opinions, frustrations, and more. The first step of marketing is to always meet people where they are the most frustrated. Good resources for this are Amy Hoy’s Sales Safari [1], or Netnography [2]. I also like Sean D’Souzas Brain Audit [3]. Sean’s is the most accessible.

2. Copywriting: Once you can empathize with the persona / customer, you’ll need to learn how to relate your product or service to the person’s problems, needs, or dreams. There are many scammy resources out there, but the person who does his marketing in the most ethical way is again Sean D’souza [4]. Robert Bly is also good [5].

3. Distribution: once you solve for customer empathy and the right positioning (through compelling copywriting), the final step is to distribute your copies in various media. Weinberg’s Traction is a good starting point [6].

Some will recommend Russell Brunson, Sam Ovens, Gary Halbert, etc, but these folks are in the extreme end of marketing, and may not suit everyone. Their methods work for “get rich quick” online courses or coaching programs, but not for real products or services where you need to sustain a brand over time. The resources I mentioned are a good foundation for ethical marketing.

RE: Feedback loops - the fastest way to get a feedback loop is to start with content marketing. Your article must solve a tiny problem, then you distribute it. If you get good feedback, then make a longer article, then get feedback again. Then turn it into an ebook or small online tool, then get feedback. Keep increasing the size of your solution until you get to your desired goal (like a SaaS).

Another way to get a feedback loop is through ads: run multiple ads, compare their conversion rates, drop the worst ones, scale the best ones, then add more ad tests.

[1] https://stackingthebricks.com/video-sales-safari-in-action/

[2] https://www.amazon.com/Netnography-Essential-Qualitative-Soc...

[3] https://www.psychotactics.com/products/the-brain-audit-32-ma...

[4] https://www.psychotactics.com/home-study/copywriting-home-st...

[5] https://www.amazon.com/Copywriters-Handbook-Step-Step-Writin...

[6] https://www.amazon.com/Traction-Startup-Achieve-Explosive-Cu...

I built a SaaS MVP in 2 months (nights and weekends) using Roda + HTMX + Alpine.js + Missing CSS + Postgres. I was quite happy with how moldable Roda is.

I tried rails in conjunction with roda in the first 2 weeks, but I felt far more productive with roda for my use case and stuck with it.

Yes, and I would typically search for simple projects using keywords such as “micro”, “small”, “tiny”, or “pico”.

I would then try to re-implement the “getting started” code in the readme from scratch, like a little programming puzzle. If I can’t figure it out, I‘ll add in some debugger breakpoints, inspect the stack trace to understand how it works, then code the needed methods / classes as I go.

If you’re a ruby programmer, soveran’s work in github can be read in a day or two. I specifically like cuba (micro webframework) and mote (microtemplate).

There’s quite a few:

- Zed Shaw’s Learn More Python the Hard Way[1]

- Brian Hogan’s Exercises for Programmers (best for beginners or for learning a new language)[2]

- Hal Fulton’s The Ruby Way[3]

- Chris Ferdinandi’s Vanilla JS Academy[4]

- Marc-Andre Cournoyer’s Great Code Club (it’s old, and the community doesn’t exist anymore, but i think he still maintains it)[5]

- A few python books from No Starch Press (notably those authored by Al Sweigart)

I learned the most as a beginner from Zed Shaw’s work, and from reading open source code.

Once you’re done with the initial “learn from tutorials” phase, there’s no better resource than reading open source code.

[1] https://www.amazon.com/Learn-More-Python-Hard-Way/dp/0134123...

[2] https://www.amazon.com/Exercises-Programmers-Challenges-Deve...

[3] https://www.amazon.com/Ruby-Way-Programming-Addison-Wesley-P...

[4] https://vanillajsacademy.com/

[5] https://www.greatcodeclub.com/

This looks great! I’ve played a couple of games in the Open Sicilian and the French Tarrasch and there wasn’t a moment that I felt like I was playing against a computer. It plays some cheezy lines which I would expect from a lichess player.

On the user side - I think the review area would benefit from principle-based analysis similar to what is seen in chess.com. I am guessing that for it to happen, there needs to be a separate analysis engine that can detect positional motifs. I think chess.com did a decent job with that (better and more actionable than decodechess in my opinion).

On the tech side - I’m curious how this project differs from existing neural nets trained for lc0 such as bad gyal and maia?

You get sucky traffic if you target Audience Network and Tablets.

If you're targeting to a developing country, then you need to then filter by profession (e.g. Software Engineers, CTO, etc.). Some countries (notably Vietnam, Philippines, and Bangladesh) have fake account farms where they sell fake likes or do shady stuff like click on their clients' competitors' ads to they can jack up their cost.

Not really. It's not exactly a "need" for me -- generally I can get insights off the podcast just by listening to it.

A close analogy would be a radio show -- no one over teh course of a few decades has ever paid for a transcribed radio show

Ha! Just had that binge too...

... Here's what I like:

On the business end: - Badass by Kathy Sierra - Impossible to Inevitable by Aaron Ross - Traction by Gabriel Weinberg - Cold Calling Early Customers by Robert Graham - Learn or Die by Edward Hess

On "refining your thought process": - Mind for Numbers by Barbara Oakley - Racing Towards Excellence by Jan Sramek - Art of Learning by Josh Waitzkin - Case Interview Secrets by Victor Cheng (helps you think in a nice, structured way)

It's a search service, so it's best to took at existing / similar services for inspiration like Google and Yelp.

So that means allocating placements to be used either for adsense / auction-style ad placements.

Same as you, I tried a bunch of various to-do list apps before but none of them worked out well for me.

Then I realized that the process of breaking down workload and personal life into small tasks does not fit well in a to-do list app context.

What worked for me was using something like BusyCal, which is a souped-up calendar. It was more aligned with the 'breaking down' process because I used the 'banner' feature to help me define my weekly goals then I proceed with tasks assigned with specific chunks of time.

I then track the planned vs actual time spent using letsfreckle.com, which is a time tracking tool.

For the more higher-level stuff (ie. monthly goals, yearly goals), I just keep them in Trello.

As for habits, I have a weekly review to check where I am vs monthly goals and I also use that review to allocate tasks into my calendar.

Apart from keeping track, a related problem I'm facing is making sure that I am able to re-implement what I'm doing.

So what I do is the following:

1. I break down what I've learned into steps or checklists

2. I then put these into Scrivener

3. Each topic that I've learned has it's own page

Here's a small example from my notes around PDF generation + attachments in Rails. This is just the overall picture -- each bullet point expands to another bunch of notes which has actual code details.

* build a mailer with mail(to:, from: content:)

* build a controller what delivers that content

* the controller should render a notice that says that the post has been successfully created <via a respond_to method>

* make sure that you configure the SMTP settings

* build a pdf creator (PrawnPDF::Base) => this initializes a PDF w/ some view_context

* configure a MIME type within config/initializers

* configure a controller that triggers a respond_to for this

* add a button that links to think Printable receipt

* save the PDF into some foldere

* insert a paperclip file type into the migration

* add this intot he user model

* go back to the PDF / order controller and then add a custom path to save the PDF (pdf.render file…)

* then save that file inside teh database & set it to the certificate

Finding experts is indeed tough -- I remember trawling around freelance boards with very bad results. It got a lot better when I discovered premium job boards + done for you services online.

Specifically for you, I think this might help: https://www.codementor.io/computer-vision-experts

In general, here's how I usually do my googling: - Initial search: "<keyword> + Done for You Service" || "<keyword> + Consultancy" - Second Search Run (if technical): "site:codementor.io <keyword>" - Third Search Run: Go to Clarity.fm and ask some of the folks there for referrals to someone